Selective merchandise price optimization

ABSTRACT

An interface that enables a user to determine optimum prices of products for sale. The interface includes a scenario/results processor through which the user prescribes an optimization scenario, and through which optimum prices are presented to the user. The optimum prices are determined by execution of the optimization scenario, where the optimum prices are determined based upon estimated product demand and calculated activity based costs. The scenario/results processor has an input/output processor and a scenario controller. The input/output processor acquires data corresponding to the optimization scenario from the user, and distributes optimization results to the user. The scenario controller is coupled to the input/output processor. The scenario controller controls acquisition of the data and the distribution of the optimization results in accordance with a price optimization procedure. The price optimization procedure is configured to relax constraints of lower priority conflicting rules to render the optimization scenario feasible.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates in general to the field of econometrics, and more particularly to an apparatus and method for determining optimum prices for a set of products within a product category, where the optimum prices are determined to maximize a merchandising figure of merit such as revenue, profit, or sales volume.

2. Description of the Related Art

Today, the average net profit generated chains and individual stores within the consumer products retail industry is typically less than two percent of sales. In other words, these stores make less than two dollars profit for every one hundred dollars in revenue. Stores in this industry walk a very fine line between profitability and bankruptcy. Consequently, in more recent years, those skilled within the merchandising arts have studied and developed techniques to increase profits. These techniques are geared toward the manipulation of certain classes of merchandising variables, or “levers.” In broad terms, these merchandising levers fall into five categories: price (i.e., for how much a product is sold), promotion (i.e., special programs, generally limited in time, to incite consumers to purchase particular products), space (i.e., where within a store particular products are displayed), logistics (i.e., how much of and when a product is ordered, distributed, and stocked), and assortment (i.e., the mix of products that are sold within a chain or individual store). It has long been appreciated that manipulating certain attributes within each of these “levers” can result in increased sales for some products, while resulting in decreased sales for other, related products. Therefore, it is no surprise that managers within the consumer products merchandising industry are very disinclined to make any types of changes without a reasonably high confidence that the changes will result in increased profits. The margin for error is so small that the implementation of any wrong decision could mean the difference between a profitable status and an unprofitable status.

Ad hoc methods for manipulating merchandising variables in order to increase profits have been employed for years within the industry. And a whole system of conventional wisdoms regarding how to manipulate certain levers has developed, to the extent that courses of undergraduate and graduate study are offered for the purpose of imparting these conventional wisdoms to future members of the industry. For example, category managers (i.e., those who are responsible for marketing a category of related products within a chain of stores) are inclined to believe that high-volume products possess a high price elasticity. That is, the category managers think that they can significantly increase sales volume for these products by making small price adjustments. But this is not necessarily true. In addition, category managers readily comprehend that products displayed at eye level sell better than those at floor level. Furthermore, it is well known that a store can sell more of a particular product (e.g., dips and salsa) when the particular product is displayed next to a complementary product (e.g., chips). Moreover, ad hoc psychological lever manipulation techniques are employed to increase sales, such as can be observed in some stores that constrain the values of particular price digits (e.g., $1.56 as opposed to $1.99) because conventional insights indicate that demand for some products decreases if those products have prices that end in “9.”

Although experiential lessons like those alluded to above cannot be applied in a deterministic fashion, the effects of manipulating merchandising variables can most definitely be modeled statistically with a high degree of accuracy. Indeed, there is a quantifiable relationship between each of these merchandising levers and consumer demand for a product, or group of products, within a store, or a group of stores in a retail chain. And the relationship between these levers and consumer demand can be accurately modeled, as long as the modeling techniques that are employed take into account a statistically sufficient number of factors and data such that credible and unbiased results are provided. Examples of these factors include price and sales history as a function of time (e.g., day of the week, season, holidays, etc.), promotion (e.g., temporary price reductions and other promotional vehicles), competition (e.g., price and sales history information for directly competitive products that are normally substitutes), and product size variations. Those skilled within the art typically refer to a model as is herein described as a demand model because it models the relationship between one or more merchandising levers and consumer demand for a group of products.

The degree to which demand for a particular product is correlated to a particular lever is called its “lever elasticity.” For example, a product with a low price elasticity can undergo a significant change in price without affecting demand for the product; a high price elasticity indicates that consumer demand for the product is very susceptible to small price variations.

Demand models are used by product category mangers as stand-alone models, or as part of an integrated demand/price model. In the stand-alone application, a category manager inputs potential prices for a product or product group, and the stand-alone model estimates sales for the product or product group. Accordingly, the category manager selects a set of prices to maximize sales of the product or product group based upon outputs of the stand-alone demand model. An integrated demand/price model typically models demand within a set of constraints provided by the category manager for a product or group of products and establishes an optimum price for the product or group of products based partially upon the price elasticity of the product or group of products and the objectives of the model analysis.

Notwithstanding the benefits that category managers are afforded by present day demand/price models, their broad application within the art has been constrained to date because of three primary limitations. First, present day demand/price models do not take into account the costs associated with providing a product for sale. That is, the models can only determine prices as a function of demand to maximize sales, or revenue. But one skilled in the art will appreciate that establishing product prices to maximize revenue in an industry that averages less that two percent net profit may indeed result in decreased profits for a retailer because he could potentially sell less high-margin products and more low-margin products according to the newly established product prices. Hence, determining a set of prices based upon demand alone can only maximize volume or revenue, not profit. And profit is what makes or breaks a business. Secondly, present day demand/price models typically estimate price elasticity for a given product or product group without estimating how changes in price for the product or product group will impact demand for other, related products or product groups. For instance, present day demand/price models can estimate price elasticity for, say, bar soap, but they do not estimate the change in demand for, say, liquid soap, as a result of changing the prices of bar soap. Consequently, a soap category manager may actually decrease profits within his/her category by focusing exclusively on the prices of one subcategory of items without considering how prices changes within that one subcategory will affect demand of items within related subcategories. Finally, it is well appreciated within the art that present day statistical techniques do not necessarily yield optimum results in the presence of sparse and/or anomalous data.

Therefore, what is needed is a technique that enables a user to configure and execute optimization scenarios within a model that determines optimized prices for products within a product category, where the model considers the cost of the products as well as the demand for those products and other related products.

In addition, what is needed is a price optimization interface apparatus that allows a user to configure optimization parameters of an apparatus that models the relationship between the prices of products within a given subcategory and the demand for products within related subcategories.

Furthermore, what is needed is a method for viewing results of a system that optimizes the prices of products within a plurality of subcategories, where the system maximizes a particular merchandising figure of merit that is a function of cost as well as demand.

In some of the above noted applications, rules are prescribed by an operator that constrain certain aspects of an optimization to be performed. In certain cases, it may be determined that particular rules conflict with one another so as to render the optimization infeasible. Therefore, it is additionally desirable to provide a method and apparatus that resolve conflicts between two or more conflicting rules, thus allowing an optimization to proceed.

Moreover, what is needed is an apparatus and method that enable users to update cost and/or other information for a subset of products within an defined optimization scenario and to prescribe an upper limit for the number of price tag changes that result from an ensuing re-optimization that is performed on the optimization scenario.

SUMMARY OF THE INVENTION

The present invention provides a superior technique for configuring optimization scenarios, determining a set of optimum prices corresponding to the scenarios, and displaying the set of optimum prices for multiple sets of highly related products within a product category. Contrasted with present day optimization systems that consider only gross figures in their respective optimizations, prices according to the present invention can be optimized to maximize merchandising figures of merit (e.g., net profit) that take into account demand chain costs associated with the products.

In one embodiment, an interface enabling a user to determine optimum prices of products for sale is provided. The interface has a scenario/results processor. The scenario/results processor enables a user to prescribe an optimization scenario, and presents the optimum prices to the user, where the optimum prices are determined by execution of the optimization scenario, and where the optimum prices are determined based upon estimated product demand and calculated activity based costs. The scenario/results processor has an input/output processor and a scenario controller. The input/output processor acquires data corresponding to the optimization scenario from the user, and distributes optimization results to the user. The scenario controller is coupled to the input/output processor, and controls acquisition of the data and distribution of the optimization results in accordance with a price optimization procedure, where the price optimization procedure relaxes constraints of lower priority conflicting rules to render the optimization scenario feasible.

One aspect of the present invention contemplates a method for providing an interface to an apparatus for optimizing the prices of products for sale. The method includes utilizing a computer-based scenario/results processor within an optimization server to present a sequence of data entry templates to a user, whereby the user specifies an optimization scenario, the optimization server optimizing the prices according to modeled market demand for the products and calculated demand chain costs for the products. The utilizing includes selectively limiting the number of prices that are optimized. The method also includes generating a plurality of optimization results templates and providing these templates to the user, where the optimum prices are presented.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, features, and advantages of the present invention will become better understood with regard to the following description, and accompanying drawings where:

FIG. 1 is a diagram illustrating how small price changes are applied according to the present invention in order to shift consumer demand from a low-margin product to a higher-margin, strong substitute product.

FIG. 2 is a block diagram illustrating an apparatus for merchandise price optimization according to the present invention.

FIG. 3 is a block diagram depicting details of an optimization engine according to the present invention.

FIG. 4 is a block diagram showing scenario/results processor details according to the present invention featuring logic for resolving rule conflict and for performing re-optimization on a product subset.

FIG. 5 is a flow chart featuring a method according to the present invention for optimizing selected product merchandising levers featuring flows for resolving rule conflict and for performing re-optimization on a product subset.

FIG. 6 is a diagram illustrating a currently defined scenarios template according to an exemplary embodiment of the present invention.

FIG. 7 is a diagram featuring a scenario menu within the currently defined scenarios template of FIG. 6.

FIG. 8 is a diagram depicting a groups/classes menu within the currently defined scenarios template of FIG. 6.

FIG. 9 is a diagram portraying an admin menu within the currently defined scenarios template of FIG. 6.

FIG. 10 is a diagram showing a category template that is part of a new scenario wizard according to an exemplary embodiment of the present invention.

FIG. 11 is a diagram illustrating a product template that is part of the new scenario wizard.

FIG. 12 is a diagram featuring a location template that is part of the new scenario wizard.

FIG. 13 is a diagram depicting a time horizon template that is part of the new scenario wizard.

FIG. 14 is a diagram portraying an at-large rules template that is part of the new scenario wizard.

FIG. 15 is a diagram portraying a strategy template that is part of the new scenario wizard.

FIG. 16 is a diagram showing a currently defined scenarios window according to an exemplary embodiment of the present invention that features defined scenarios in various states of optimization.

FIG. 17 is a diagram illustrating how optimization results are presented to a user within the currently defined scenarios window of FIG. 16.

FIG. 18 is a diagram featuring an optimization results template according to the exemplary embodiment of the present invention.

FIG. 19 is a diagram depicting a contribution margin method for presenting optimization results according to the exemplary embodiment of the present invention.

FIG. 20 is a diagram portraying scenario results display options within the optimization results template of FIG. 18.

FIG. 21 is a diagram showing a general information window pertaining to a particular optimization scenario that has been selected within the currently defined scenarios window of FIG. 16.

FIG. 22 is a diagram illustrating an analyze scenario results template that is provided to a user who selects to view detailed scenario results according to the display options of FIG. 20.

FIG. 23 is a diagram featuring a drill down configuration template for prescribing display options for scenario results.

FIG. 24 is a diagram depicting an analyze scenario results template that corresponds to display options selected within the drill down configuration template of FIG. 23.

FIG. 25 is a diagram depicting a file location designation window according to an exemplary embodiment of the present invention.

FIG. 26 is a diagram portraying a graph utility window for graphically presenting scenario results.

FIG. 27 is a diagram showing a personal settings template for configuring scenario properties for display within a currently defined scenarios window according to an exemplary embodiment of the present invention.

FIG. 28 is a diagram illustrating the personal settings template of FIG. 27 having a group of scenario properties selected for display within a currently defined scenarios window according to an exemplary embodiment of the present invention.

FIG. 29 is a diagram featuring a currently defined scenarios window corresponding to the display properties selected in the personal settings template of FIG. 28.

FIG. 30 is a diagram depicting a create and manage store groups template according to an exemplary embodiment of the present invention.

FIG. 31 is a diagram portraying the create and manage store groups template of FIG. 30 indicating those stores within a store group entitled “Midtown.”

FIG. 32 is a diagram showing a tree filtering window for building a store group according to the exemplary embodiment.

FIG. 33 is a diagram illustrating a product class management window according to the exemplary embodiment highlighting products within a premium product class.

FIG. 34 is a diagram featuring a rules summary window for an optimization scenario that is highlighted within a currently defined scenarios window.

FIG. 35 is a diagram depicting contents of a rules/constraints menu within the currently defined scenarios window of FIG. 34.

FIG. 36 is a diagram portraying a first rule warning window according to the exemplary embodiment.

FIG. 37 is a diagram showing an add a rule for product group template according to the exemplary embodiment.

FIG. 38 is a diagram portraying added rules within a rules summary window according to the exemplary embodiment.

FIG. 39 is a diagram illustrating selection options within a currently defined scenarios template that allow a user to re-optimize a product subset and to perform an optimization feasibility analysis.

FIG. 40 is a diagram depicting a re-optimize a subset template within a currently defined scenarios window according to the exemplary embodiment.

FIG. 41 is a detailed diagram of a re-optimize a subset template according to the exemplary embodiment.

FIG. 42 is a diagram showing a rules summary template that features controls for prioritizing optimization rules according to the exemplary embodiment.

FIG. 43 is a diagram illustrating a feasibility analysis options template according to the exemplary embodiment.

FIG. 44 is a diagram featuring a feasibility analysis configuration template according to the exemplary embodiment.

DETAILED DESCRIPTION

The following description is presented to enable one of ordinary skill in the art to make and use the invention as provided in the context of a particular application and its requirements. Various modifications to the preferred embodiment will, however, be apparent to one skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described herein, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.

In light of the above background on the techniques employed by present day techniques for optimizing the prices for a group of products within a store or group of stores, a detailed description of the present invention will be provided with reference to FIGS. 1 through 44. The present invention overcomes the limitations of present day demand/price models by providing an apparatus and methods that enable category managers to optimize the prices of multiple sets of highly related products within a product group, to re-optimize subsets of those groups when updates occur, and to render optimizations feasible when conflicts arise between prescribe optimization rules. The optimization afforded by the present invention 1) employs product cost figures to determine an optimum set of prices, and 2) takes into consideration the effects in demand that prices changes in one set of highly related products will cause in all other sets of highly related products within the product group.

Now referring to FIG. 1, a chart 100 is presented illustrating how small price changes are applied according to the present invention in order to shift consumer demand from a low-margin product to a higher-margin, highly related product. The chart 100 shows a number of product item points 101 having various levels of net profitability per unit (ordinate axis) as a percentage of sales dollars per store per week (abscissa axis). One skilled in the art will appreciate that the chart ranges and the dispersion of product item points 101 over the range of sales and net percentage profits is representative of a typical store or chain of stores in the consumer products merchandising industry. In addition, the chart 100 shows an average profit line 102 that is also representative of profits generated by stores within the consumer products industry. The chart 100 specifically depicts a high-sales, low-margin product A 101 and a low-sales, high-margin product B 101. Products A 101 and B 101 are also highly correlated products 101, that is, they are normally strong substitutes, yet in some cases may be strong complements. Because they are highly correlated, products A 101 and B 101 have very similar attributes from a consumer demand point of view. For example, product A 101 may represent a popular brand of corn flakes, while product B 101 represents a private label brand of corn flakes.

Those skilled in the art will also concur that while the average net profit 102 for a group of products in the consumer products industry is typically less than two percent of sales, there is a wide dispersion of net profits around the average 102, often as much as 10 percent variation from the average 102, by item 101, and by store. Accordingly, the chart 100 of FIG. 1 depicts products 101 within four profitability quadrants. From a profitability perspective, having products within the upper right quadrant of the chart 100 is desirable. The upper right quadrant contains high-volume, high-margin products 101. In other words, if a product 101 is shown in the upper right quadrant of the chart 100, it is a product 101 that has high sales, and its cost of sales is low compared to its price—a very profitable item. In contrast, the lower right quadrant contains products 101 that are unprofitable because products in this quadrant, although they are high-volume, they generate negative profits—their cost per unit is greater than their price per unit. A chain cannot stay in business very long when most its sales come from products in the undesirable, lower right quadrant of the chart 100. Similarly, the upper left quadrant of the chart 100 contains products 101 that generate negative profits, yet which have a low sales volume. And the upper left quadrant contains products 101 that at least are profitable, albeit they do not sell very well.

At a very basic level, the present invention operates to shift consumer demand from products 101 in undesirable quadrants of the chart 100 to highly correlated, or strong substitute, products 101 in more desirable quadrants of the chart 100. Using the example of strong substitute products A 101 and B 101, the apparatus and method according to the present invention engineers this shift in demand by adjusting the prices of A 101 and B 101 to send demand from A 101 to B 101. The chart 100 depicts a 2-cent increase in the price for product A 101 and a 1-cent decrease in price for product B 101, thus resulting in a demand shift from A to B.

The optimization techniques according to the present invention employ both cost data and price/sales relationships for all products within a product category to affect demand shifts, not just for selected products 101 within a product category, but for all products 101, if chosen, within the product category. By engineering a clockwise shift in demand for related products 101 within a product category, the model according to the present invention provides both apparatus and methods for increasing the average net profit 102 for a store or chain of stores.

Now referring to FIG. 2, a block diagram 200 is presented illustrating an apparatus for merchandise price optimization according to the present invention. The block diagram 200 shows an optimization network operations center (NOC) 230 that is accessed over a data network 220 by a plurality of off-site computers 210 belonging to a plurality of customers. In one embodiment, the data network 220 is the Internet 220 and the off-site computers 210 are executing a Transport Control Protocol (TCP)/Internet Protocol (IP)-based thin web client application 211 such as Microsoft® Internet Explorer® or Netscape® Navigator®. In an alternative embodiment, the computers 210 execute an additional client application for executing distributed applications such as Citrix® ICA® Client 211. The optimization NOC 230 has a firewall 231 through which data network packets enter/exit the NOC 230. The firewall 231 is coupled to a web server 232. The web server 232 provides front-end services for a scenario/results processor 233. The scenario/results processor 233 is coupled to an optimization engine 234, an activity based cost (ABC) standards data base 237, and a customer data base 238. The customer data base 238 provides storage for data sets 239 corresponding to a plurality of customers. The optimization engine 234 interconnects to an activity based cost engine 235 and a demand engine 236. The activity based cost engine 235 is coupled to the ABC standards data base 237 and the demand engine 236 is coupled to the customer data base 238

In operation, each of the customers maintains a protected data set 239 within the customer data base 238. Point of sale data is uploaded over the data network 220 from files on the customer computers 210 into corresponding data sets 239 within the data base. The scenario/results processor 233 controls the timing and sequence of customer activities for uploading data, configuring optimization scenarios, setting rules and constraints, and downloading optimization results for display on the client computers 210. In one embodiment, the scenario/results processor 233 builds Hypertext Markup Language (HTML) web pages for transmittal over the data network 220 to the clients 210. In an alternative embodiment, the scenario/results processor 233 builds Extensible Markup Language (XML) pages for distribution to the clients 210. In a Java®-based embodiment, the scenario/results processor 233 builds, processes, and distributes Java applets to the clients 210.

The web server 232 receives and issues data network transactions over the data network 220 to affect the distribution of web pages, or templates, and to receive commands and data from the client machines 210.

Configured optimization scenarios are executed by the optimization engine 234. Using scenario configuration parameters provided by users through the browser 211 on a client machine 210, the optimization engine 234 directs the demand engine 236 to extract data from the customer data set 239 that applies to the optimization scenario that is being executed. The demand engine 236 predicts sales and market share of products as a function of price according to rules and constraints of the optimization scenario and the activity based cost engine 235 calculates variable and fixed costs for products at specific store locations according to parameters of the optimization scenario.

The demand engine 236 relies on a mixed-model framework, simultaneously utilizing information in the client data set 239 across all stores and products within a product category, where a product category is defined as a collection of substitutable or complementary products. Furthermore, a demand group is defined to be a set of highly substitutable or complementary products. By way of example, a product category may comprise personal soap products. Demand groups within the personal soap category could consist of bar soaps and liquid soaps. The mixed model methodology is also referred to as “Bayesian Shrinkage” Modeling, because by combining data from various stores and/or products, one skilled can “shrink” individual parameter estimates towards the average estimate, dampening the extreme values that would result if traditional statistical techniques were used.

The demand engine 236 uses the data from the client data set 239 to estimate coefficients that may be used in an equation to predict consumer demand. In a preferred embodiment of the invention, sales for a demand group (S) is calculated, and a market share (F) for a particular product is calculated, so that demand (D) for a particular product is estimated by D=S·F.

The activity based cost engine 235 employs data from the client data set 239 (supplied through the optimization engine 234), industry standard average data for calculating activity based costs from the ABC standards data base 237, and may also receive imputed variables (such as baseline sales and baseline prices) and data from the demand engine 236 (via the optimization engine 234) to calculate fixed and variable costs for the sale of each product. Examples of the types of activity based costs for products that are calculated by the activity based cost engine 235 include bag costs, checkout labor costs, distribution center inventory costs, invoicing costs, transportation costs, and receiving and stocking costs.

The optimization engine 234 executes the optimization scenario that clients configure using the scenario/results processor 233. Using estimated sales and market share data provided by the demand engine 236, along with fixed and variable activity based costs calculated by the activity based cost engine 235, in a price optimization embodiment, the optimization engine 234 determines optimum prices for selected products within one or more demand groups across a product category as constrained by rules and constraints provided by clients. Some of the rules/constraints set by the client include constraints to the overall weighted price advance or decline of products, branding price rules, size pricing rules, unit pricing rules, line pricing rules, and cluster (i.e., groups of stores) pricing rules. In addition, the client provides overall constraints for optimization scenarios that include specification of figures of merit that optimum prices are determined to maximize. Example options for figure of merit selection in a price optimization embodiment include net profit, volume, and revenue.

The results of an executed optimization scenario are provided to the client, or user, via the scenario/results processor 233 through a sequence of result templates. The result data may also be downloaded over the data network 220 to a designated file on the client machine 210.

Now referring to FIG. 3, a block diagram is presented depicting details of an optimization engine 300 according to the present invention. The optimization engine 300 includes optimization management logic 302 that is coupled to a scenario/results processor (not shown) according to the present invention via bus 301. The optimization engine 300 also includes a price optimization tool 304, a promotion optimization tool 306, a space optimization tool 308, a logistics optimization tool 310, and an assortment optimization tool 312. Profile bus 324 provides optimization profile configuration parameters from the optimization management logic 302 to one or more of the optimization tools 304, 306, 308, 310, 312. The optimization tools 304, 306, 308, 310, 312 communicate result data from executed optimization scenarios to the optimization management logic 302 via result bus 322. Each of the optimization tools 304, 306, 308, 310, 312 are coupled to a demand engine (not shown) via bus 318 and to an ABC engine via bus 320.

In operation, the optimization management logic 302 interprets an optimization scenario configured by a user to direct the retrieval and/or upload of data from the client computer, and the receipt of customer data from the demand engine and ABC standards data from the ABC engine in accordance with the type of optimization that is being performed. The price optimization tool 304 is employed to determine a set of optimum prices for products of a product category comprising a plurality of demand groups. The promotion optimization tool 306 is employed to determine an optimum promotion strategy for products of a product category comprising a plurality of demand groups. The space tool 308 is employed to determine an optimum placement strategy within stores for products of a product category comprising a plurality of demand groups. The logistics tool 310 is employed to determine an optimum inventory strategy within stores for products of a product category comprising a plurality of demand groups. And the assortment tool 312 is employed to determine an optimum mix of products of a product category comprising a plurality of demand groups. Each of the tools 304, 306, 308, 310, 312 include provisions for determining optimum lever parameters for the maximization of cost-based merchandising figures of merit such as net profit. In one embodiment, the optimization engine 300 comprises computer program modules coded for execution by an optimization analysis program such as GAMS®. The results of an optimization are exported from the application program as tables into a data base server application such as Microsoft® SQL Server.

Now referring to FIG. 4, a block diagram is presented showing details of a scenario/results processor 400 according to the present invention. The scenario/results processor includes transaction processing logic 402 that communicates with a web server (not shown) according to the present invention via bus 401. Bus 403 couples the transaction processing logic 402 to an input/output processor 404. The input/output processor 404 includes a template controller 405 and command interpretation logic 406. The input/output processor 404 is connected to a scenario attributes format data set 409 and a screen templates data set 410. In one embodiment, the data sets 409, 410 are stored within an ABC standards data base (not shown) according to the present invention. The input/output processor 404 communicates with a scenario controller 412 via bus 411. The scenario controller 412 has data collection logic 413, a rules generator 414, and results export logic 415. The scenario controller 412 is coupled to an optimization engine (not shown) according to the present invention via bus 421, an ABC data base (not shown) via bus 422, and a customer data base (not shown) via bus 423.

Operationally, the transaction logic 402 provides application level message services for the scenario/results processor 402 to receive/transmit messages from/to clients via the web server. In one embodiment, sessions are established via conventional socket calls according to Microsoft® Windows NT® operating system. The input/output processor 404 directs the acquisition of client data to define parameters of an optimization scenario and directs the distribution of scenario results to the clients. The command interpretation logic 406 utilizes a series of scenario configuration templates, or new scenario templates, provided by the template controller 405 to enable a user to configure parameters of a optimization scenarios for execution. The new scenario templates, or windows, are stored in the screen templates data set 410, and are populated with appropriate configuration option data by the command interpretation logic 406. The input/output processor 404 routes these templates to the transaction logic 402, whereby the templates are routed to the user client machines over the data network. The command interpretation logic 406 includes interactive data acquisition logic 408 and file acquisition logic 407. The interactive data acquisition logic 408 is employed to populate selected scenario configuration templates with fields/parameters whereby a user interactively provides data required to configure a scenario or to display the results of an executed scenario. The file acquisition logic 407 is employed to control the reception of electronic files from a client machine required to configure a scenario and to control the transmission of files to export results of an executed scenario to a client machine. The scenario attributes format data set 409 describes the format requirements for product attribute data so that data received by the command interpretation logic 406 can be manipulated into formats that comport with each of the optimization tools 304, 306, 308, 310, 312 described with reference to FIG. 3.

The scenario controller 412 directs the configuration and execution of an optimization scenario, and presentation of the results of an optimization scenario. The scenario controller 412 has data collection logic 413, a rules generator 414, and results export logic 415. The rules generator 414 comprises a plurality of rules logic elements to include a price optimization rules element 416, a promotion optimization rules element 417, a space optimization rules element 418, a logistics optimization rules element 419, and an assortment optimization rules element 420. The rules generator 414 also has subset re-optimization logic 424 and rule relaxation logic 425.

Operationally, through a subset of the new scenario templates, a user on a client machine selects to perform one of a plurality of available optimizations. The selected optimization is provided to the scenario controller 412 via bus 411. The data collection logic 413 prescribes client data that is required to execute the selected optimization. The rules generator 414 selects a rules logic element 416-420 that comports with the selected optimization and the rule relaxation logic 425 is selected to allow the user to prioritize generated rules according to the selected rules logic element 416-420. The results export logic 415 identifies results templates and/or file designations that are required to present results of the selected optimization. Template designations for additional data that is required from the user are provided to the input/output processor 404 and the selected rules logic element 416-420 provides rules configuration parameters for the optimization scenario to the optimization engine via bus 421.

The template controller 405 and command interpretation logic 406 together configure the designated new scenario templates for presentation to the user, whereby configuration data and additional data (if any) for the optimization scenario are retrieved. In an embodiment where subset re-optimization is contemplated, the additional data is provided for a subset of the products within a previously defined optimization scenario and templates are presented to the user to allow for the prescription of a maximum number of changes. In a price subset re-optimization embodiment, the changes comprise price changes. In a promotion subset re-optimization embodiment, the changes comprise promotion changes. In a space subset re-optimization embodiment, the changes comprise product movements. In a logistics subset re-optimization embodiment, the changes comprise inventory changes. In an assortment subset re-optimization embodiment, the changes comprise changes in product assortment. Once the configuration/additional data are in place within the data base (not shown), the scenario controller 412 directs the optimization engine to execute the configured optimization scenario. When an optimization is complete, the results export logic 415 retrieves scenario results from the optimization engine and formats the results for export to the user via either result templates or file transfer.

Now referring to FIG. 5, a flow chart 500 is presented featuring a method according to the present invention for optimizing selected product merchandising levers. The method is provided to illustrate program flow for determining a set of optimum prices for one or more merchandising levers in an optimization system that employs both a demand model and an activity based cost model for optimization. By utilizing cost data as well as demand, optimization scenarios can be executed that maximize meaningful merchandising figures of merit such as net profit.

Flow begins as block 502, where a user selects to perform an optimization according to the present invention. Flow then proceeds to block 504.

At block 504, the user is prompted to select one of a plurality of merchandising levers for which to perform an optimization. In one embodiment, the merchandising levers include sales price, promotion strategy, space strategy, logistics strategy, and product mix. Alternative embodiments provide subsets of the aforementioned levers for optimization. Flow then proceeds to block 506.

At block 506, the system acquires data that is required to perform an optimization according to the selection provided in block 504. In one embodiment, primary point of sale data is uploaded into a client data base according to the present invention and any additional data required for the optimization is provided interactively by the user. The additional data includes rules and constraints that the user specifies concerning product categories and demand groups for optimization, selection of stores for optimization, grouping of stores for imputation of data where insufficient sales history exists, swing constraints (i.e., maximum and/or minimum change limits for parameters such as volume, price change, etc.), front end parameters for an activity based cost engine (e.g., labor rates, cost of capitol, etc.), merchandising figure of merit to maximize, and user preference for presentation of results (i.e., list, graph, downloadable file, etc.). In an alternative embodiment, the additional data is stored within a file on a client machine and is uploaded to the data base over a data network. In an embodiment comprising a plurality of clients, access to client data within the data base and control of optimizations is protected by secure measures such as passwords, user privilege restrictions, digital authentication, and encrypted communications. Flow then proceeds to decision block 508.

At decision block 508, an evaluation is made to determine if the optimization to be performed applies to a set of products or to a subset of products within a previously defined optimization. If a subset re-optimization is prescribed, then flow proceeds to block 510. If a new optimization on a set of products is prescribed, then flow proceeds to block 512.

At block 510, the number of allowable changes resulting from a subset re-optimization is specified by the user. Flow then proceeds to block 512

At block 512, demand and ABC (i.e. financial) models are developed according to user-supplied scenario data by modeling applications according to the present invention. Flow then proceeds to block 514.

At block 514, rules and constraints provided by the user for the optimization scenario are applied to bound (i.e., constrain) the optimization that is to be performed. In addition to the prescription of rules, the user must also prioritize the rules so that, in the case that certain rules conflict, subsequent steps can render the optimization feasible. Flow then proceeds to decision block 516.

At decision block 516, an evaluation is made to determine if the prescribed optimization is feasible, i.e., if an optimum solution can be found that satisfies the developed models and the user-provided rules/constraints. If it is determined that the prescribed optimization is feasible, then flow proceeds to block 522. If it is determined that the prescribed optimization is not feasible, then flow proceeds to block 518.

At block 518, the lower priority rules that contribute to a conflict are progressively relaxed up to a limit in order to render an optimization as feasible. For example, say that one conflicting rule in a price optimization embodiment specifies that the price change for individual products should not be less than −20 percent and not more than +20 percent and that a lower priority rule specifies that individual product prices should not be less than −10 percent and not more than +10 percent of a competitive price. In such a case where competitive price changes would otherwise render the optimization infeasible, the boundaries of the lower priority competitive price rule are progressively relaxed until the optimization is either rendered feasible or until a prescribed boundary limit is reached. In one embodiment, the increment for progressive relaxation of percentage bounds is one-half of a percent and each boundary limit is ten percent of the original boundary. Under such an embodiment, the upper and lower boundaries of the competitive price ruled would be relaxed by one-half of a percent up to a point where the boundaries are −11 percent and +11 percent. Flow then proceeds to decision block 520.

At decision block 520, an evaluation is made to determine if, following rule relaxation, the optimization has been rendered feasible. If so, then flow proceeds to block 522. If not, then flow proceeds to block 526.

At block 526, data describing infeasible constraints is provided to the user. Flow then proceeds to block 530.

At block 522, an optimization is performed by the system according to the present invention that utilizes both the demand model data and the financial model data to determine a set of optimum lever attributes for specified products that maximize the specified merchandising figure of merit within the rules and constraints provided by the user. If a subset re-optimization has been prescribed, then attributes are allowed to change for those products whose input data has changed. If the maximum number of changes prescribed in block 510 is greater than the number of those products whose input data has changed, then the re-optimization allows attributes to change for a number of other products, up to the maximum number that was specified. Flow then proceeds to block 524.

At block 524, results of the optimization are provided to the user in the form previously specified within block 506. Flow then proceeds to decision block 528.

At decision block 516, the user is provided with an opportunity to select another one of the plurality of merchandising levers for which to perform a new optimization. If the user selects to configure and execute another optimization, then flow is directed to block 504. If the user elects to exit, then flow proceeds to block 518.

At block 518, the method completes.

Having now described the architecture and detailed design of the present invention to support optimization systems having a plurality of merchandising levers available for manipulation, attention is now directed to FIGS. 6-44, where an exemplary embodiment of a thin client-based price optimization apparatus will now be discussed. The thin client-based price optimization apparatus is presented in terms of a sequence of web templates (i.e., HTML and/or XML generated content displayed within a user's thin web client program) provided to users for the purpose of optimizing prices within specified product categories to maximize specified merchandising figures of merit in accordance with user-supplied rules/constraints.

Now referring to FIG. 6, a diagram is presented illustrating a currently defined scenarios template 600 according to the exemplary embodiment of the present invention. The currently defined scenarios template 600 is generated within a scenario/results processor using data pertaining to a particular client that is stored within an area of a data base that corresponds to the particular client. When the client logs in to an optimization NOC according to the present invention, like the NOC 230 shown in FIG. 2, the currently defined optimization scenarios corresponding to the particular client are provided by a web server over a data network to a client machine in the form of the currently defined scenarios template 600. The template shows a plurality of currently defined scenarios 601-604 corresponding to the particular client. A plurality of scenario identifiers 605 are employed to identify each of the currently defined scenarios 601-604. The plurality of scenario identifiers 605 includes identifying features such as scenario name, scenario originator, scenario type, start date for optimization, end date for optimization, scenario description, net profit resulting from optimization, and optimization status (i.e., new, optimization pending, optimized, etc.).

In the exemplary embodiment, shading and/or color features are employed within the currently defined scenarios window 600 so that a user can easily distinguish the status of the plurality of optimization scenarios 601-604. In the exemplary embodiment shown in FIG. 6, a scenario without shading 603 distinguishes a newly configured scenario. A lightly shaded scenario 601 indicates that a corresponding optimization has been completed. A darkly shaded scenario 602 is one that is pending an optimization. Highlighting is employed by the exemplary embodiment to indicate a scenario 604 that is selected by the user.

Referring to FIG. 7, a diagram 700 is presented featuring a scenario menu within the currently defined scenarios template of FIG. 6. The scenario menu provides a user with the ability to create, modify, and delete optimization scenarios according to the exemplary embodiment. The scenario menu is selected by activating a scenario menu header 702 on a menu bar 701 offered to the user by the exemplary embodiment. Selection of the scenario menu header 702, as with all other selectable items according to the exemplary embodiment, is accomplished via a pointing device or keystroke combination that are enabled by the user's thin web client and which are available for implementation by the exemplary embodiment.

The scenario menu provides scenario configuration options 704, 706, 707, 709, 711-713 that are available for a user-selected scenario 703 within the currently defined scenarios template. Options 710 that are not available for the highlight scenario 703 are indicated by dimming or an otherwise distinguishable feature. In addition to providing options for the highlighted scenario 703, the scenario menu provides an option 707 to create a new scenario and an option 705 to print a listing of currently defined scenarios. Exemplary options for the highlighted scenario 703 include an edit settings option 704, a print scenario details option 706, a copy scenario option 708, a delete scenario option 709, a view results option 711, a remove scenario optimization option 712, and an export price list option 713. If the highlighted scenario 703 has not been previously optimized, the an optimize option 710 is provided by the scenario menu.

Referring to FIG. 8, a diagram 800 is presented depicting a groups/classes menu within the currently defined scenarios template of FIG. 6. The groups/classes menu provides a user with the ability to create and edit categorization attributes corresponding to product data and store data associate with a highlighted scenario 803. The groups/classes menu is invoked by selecting a groups/classes header 802 on the menu bar 801. The groups/classes menu provides the following options: manage store groups 804, manage product groups 805, manage classes of product brands 806, manage classes of product sizes 807, manage classes of product forms 808, and an option to edit product classes 809. If an additional class of products is defined via the edit classes option 809, then an option to manage that product class would be shown along with the other product class management options 806-808.

FIG. 9 is a diagram 900 portraying an admin menu within the currently defined scenarios template of FIG. 6. The admin menu provides a user with the ability to personalize how currently defined scenarios are presented (option 904) along with an option to export demand model coefficients 905 associated with product categories for a highlighted scenario 903. In addition, an exit option 906 is provided, allowing the user to exit the exemplary price optimization application.

When a user elects to create a new optimization scenario by selecting a create new scenario option 707 within the scenario menu discussed with reference to FIG. 7, a series of scenario configuration templates are provided by the exemplary embodiment for display within the user's web browser. The scenario configuration templates together comprise a new scenario wizard that enables the user to configure major scenario parameters and variables that are required to execute a price optimization. Less frequently employed parameters and variables can be configured following configuration of the major parameters and variables. The scenario configuration templates are more particularly described with reference to FIGS. 10-15.

Referring to FIG. 10, a diagram is presented showing a category template 1000 that is part of a new scenario wizard according to an exemplary embodiment of the present invention. The category template 1000 has a categories display field 1003, a demand groups field 1005, a products listing field 1007, a cancel button 1008, and a next template button 1009. The category template 1000 is the first of the scenario configuration templates that are provided to the user's web client upon election to configure a new scenario for optimization. In addition, during the process of new scenario configuration, tabs 1001, 1002 along the upper portion of the scenario configuration templates allow the user to return to a previously configured set of parameters/variables in order to check and/or modify the previously configured set. Those parameters/variables that are currently being configured are indicated by a bold tab 1002. Parameters/variables that are unavailable for modification are indicated by dimmed tabs 1001.

The categories field 1003 provides a listing of all product categories 1004 that are available for optimization according to the client's data set within the data base. The user selects categories 1004 for optimization within the categories field 1003. Demand groups 1006 that have been defined by the user for the selected category 1004 are displayed within the demand groups field 1005. The products listing field 1007 displays the selected category 1004 along with the number of products that are in the selected category 1004. The cancel button 1008 enables the user to exit the new scenario wizard and the next button 1009 allow the user to proceed to the next template within the wizard.

After the user has selected categories for optimization, the new scenario wizard presents a product template 1100 to the user's web browser, a diagram of which is shown in FIG. 11. The product template 1100 indicates that the user is currently configuring products parameters/variables for a new scenario by a bold products tab 1102. Dimmed tabs 1101 indicate parameters/variables that cannot be presently configured and normal tabs 1112 designate parameters/variables that have been configured, but which may be modified. The product template 1100 has a products group field 1110 that displays all of the product groups 1103-1105 that have been established by the client as being available for optimization within the user-selected product category described with reference to FIG. 10. An all groups option 1105 is also provided to allow the user optimize prices for all products within the selected product category. Within the products group field 1110, the user selects a product group 1104 for optimization, which is indicated by highlighting. The products field 1111 displays all of the products 1106 within the selected product group 1104. A create or edit product groups button 1107 allows the user to dynamically modify product groups during configuration of the new scenario. A cancel button 1108 is provided to allow the user to exit the new scenario configuration wizard and a next button 1109 enables the user to proceed to the next template within the wizard.

Now referring to FIG. 12, a diagram is presented featuring a location template 1200 that is part of the new scenario wizard. As with the templates 1000, 1100 or FIGS. 10 and 11, the location template 1200 indicates parameters that are presently being configured, those that have been configured, and those that have not yet been configured via bold, normal, and dimmed tabs 1201, 1213, 1202. The locations template 1200 has a store groups field 1211, a store groups description field 1206, and a stores listing field 1207. The store groups field 1211 allows the user to select from a store group 1203-1205 for which prices will be optimized. A selected store group 1204 is indicated via highlighting. In addition, and all stores option 1205 is provided to allow the user to optimize prices for all stores entered in the client's data set. The description field 1206 displays a description of the selected store group 1204 and the stores list field 1207 lists all of the client stores 1212 that are within the selected store group 1204. The user can dynamically define store groups 1203-1205 by selecting a create/edit store groups button 1208. The user can exit the wizard by selecting a cancel button 1209. And the user can proceed to the next template by selecting a next button 1210.

Referring to FIG. 13, a diagram is presented depicting a time horizon template 1300 that is part of the new scenario wizard. The time horizon template 1300 indicates parameters that are presently being configured, those that have been configured, and those that have not yet been configured via bold, normal, and dimmed tabs 1301, 1302, 1307. The time horizons template 1300 has an optimization start date field 1303 where the user selects a start date 1307 for the new optimization scenario and an optimization end date field 1304 where the user selects an end date 1308 for the new optimization scenario. Selected start and end dates 1307, 1308 for optimizing prices are indicated within the template 1300 by highlighting. The user can exit the wizard by selecting a cancel button 1305 and the user can proceed to the next template by selecting a next button 1306.

FIG. 14 is a diagram portraying an at-large rules template 1400 that is part of the new scenario wizard. The at-large rules template 1400 allows the user to specify general rules and constraints for the new optimization scenario. The at-large rules template 1400 indicates parameters that are presently being configured, those that have been configured, and those that have not yet been configured via bold, normal, and dimmed tabs 1401, 1402, 1413. The at-large rules template 1400 has an enforce line pricing rule checkbox 1403 that constrains the optimization to create the same optimized prices for all products within a given product line. The template 1400 also has an enforce pre-prices rule checkbox 1404 that enables the user to constrain the optimization such that pre-priced product prices do not change. In addition, the template has an enforce/apply clusters rule checkbox 1405 that allows the user to direct the optimization to select the same optimized prices for all stores within a given store cluster that has been prescribed by the user. The template 1400 provides an assume average promotion activity checkbox 1406 as well, that directs the price optimization system to assume average promotion activity as part of its price optimization procedure. An allowable last digits button 1407 on the template takes the user to another template that enables the selection of numerical values that are allowed/not allowed resulting from the optimization.

In addition to these general rules, the at-large rules template 1400 provides the user with an individual product max decline/min increase field 1408 and an individual product min decline/max increase field 1409. The individual product fields 1408, 1409 allow the user to enter limits for the swing of individual product prices determined by the optimization. The at-large rules template 1400 also has a demand group max decline/min increase field 1410 and a demand group min decline/max increase field 1412. The demand group fields allow the user to constrain price swings in the optimization over an entire demand group. A next button 1412 allows the user to proceed to the next template in the new scenario configuration wizard.

Now referring to FIG. 15, a diagram is presented portraying a strategy template 1500 that is part of the new scenario wizard. The strategy template 1500 indicates parameters that are presently being configured and those that have been configured via bold and normal tabs 1502, 1501. Since the strategy window 1500 is the last template 1500 in the new scenario wizard, no dimmed tabs remain. The strategy window 1500 provides overall optimization strategy buttons that enable the user to prescribe an optimization to maximize either profit 1503, volume 1504, or revenue 1505. In addition, the strategy template provides a volume max decline/min increase field 1506 and a volume min decline/max increase field 1507 that allow the user to enter values constraining the allowable volumetric swing for the optimization. In addition buttons are provided that enable the user to use both limits specified in the fields 1506, 1507 (button 1511), no limits (button 1508), only the lower limit prescribed in field 1506 (button 1509), or only the upper limit specified in field 1507 (button 1510). A scenario name field 1512 enables the user to assign a name to the configured scenario and a save scenario button 1513 allows the user to save the configured scenario and exit the new scenario wizard.

Having now described the creation of a new optimization scenario with reference to FIGS. 10-15, additional features of the exemplary price optimization system embodiment will now be discussed with reference to FIGS. 16-26. FIGS. 16-26 include a series of results templates that illustrate the various options for viewing the results of an executed optimization and configuration settings for both configured and executed optimizations.

Now referring to FIG. 16, a diagram is presented showing a currently defined scenarios window 1600 according to an exemplary embodiment of the present invention that features defined scenarios 1601-1604 in various states of optimization. As described with reference to FIG. 6, highlighting and/or shading techniques are employed by the exemplary price optimization embodiment to allow the user to easily distinguish between newly created scenarios 1602, scenarios having a pending optimization 1603, scenarios that have completed optimizations 1601, and a currently selected scenario 1604. Through commands of a pointing device, or via selecting the view optimization results option 711 on the scenario menu discussed with reference to FIG. 7, means are provided for the user to view detailed results corresponding to optimized scenarios 1601. Through commands of a pointing device (e.g., double-clicking using a mouse device), means are provided to view information regarding the selected scenario 1604.

FIG. 17 is a diagram 1700 illustrating how optimization results are presented to a user within the currently defined scenarios window of FIG. 16. The diagram shows a portion of a currently defined scenarios template having a selected scenario 1701 for which optimization results are available. For the selected scenario 1701, the diagram shows an optimization results template 1702 laid within the currently defined scenarios window.

FIG. 18 is a diagram featuring an optimization results template 1800 according to the exemplary embodiment of the present invention, like that shown for the selected scenario discussed with reference to FIG. 17. The results template 1800 is one of five scenario information templates that are provided for a selected scenario via tabs 1801, 1802. A results tab 1802 is highlighted indicating that the user is viewing optimization results for a selected optimization scenario. The results template 1800 has a results summary field 1804, presenting summarized results of the optimization for the selected scenario, along with controls 1803, providing selectable options for viewing additional aspects of the result data for the selected scenario.

Now referring to FIG. 19, a diagram is presented depicting a contribution margin method for presenting optimization results within an optimization results summary field 1900, like that shown in FIG. 18. The results summary field 1900 includes an initial value column 1901, an optimized value column 1902, and a percent change column 1903. The columns 1901-1903 present summarized result data for a selected optimization scenario according to a contribution margin method of viewing the data. Initial, optimized, and percent change values are provided for such attributes of an optimization as equivalent unit volume, unit volume, revenue, equivalent retail price, product cost, gross margin, variable cost, contribution margin, overhead allocation, and net profit.

Referring to FIG. 20, a diagram is presented portraying scenario results display options 2000 within the optimization results template of FIG. 18. Options that are provided to the user for viewing result data include a contribution margin method option 2001, a revenue method option 2002, a detailed results option 2003, and a graphical results option 2004.

The user can also view general information associated with a selected optimization scenario by selecting a general information tab 2109 within a currently defined scenarios window having an inlaid results template, like that discussed with reference to FIG. 18. FIG. 21 is a diagram showing a general information window 2100 pertaining to a particular optimization scenario that has been selected within the currently defined scenarios window of FIG. 16. The general information window 2100 provides a scenario name field 2101 depicting a name given for the selected scenario, a start date field 2102 showing the configured optimization start data, an end date field 2103 showing the configured optimization end date, a strategy area 2104 showing the merchandising figure of merit that is maximized by the optimization, a volume constraint field 2105 depicting user-provided volume change constraint, a demand group average price change constraints field 2106 showing user-provided demand group price change constraints, a scenario-wide rules field 2107 showing other scenario-wide rules provided for the optimization, and an allowable last digits button 2108 providing a link to an allowable last digits configuration template. For selected scenarios that have already completed optimization, the fields and buttons 2101-2108 are dimmed to indicate that their contents cannot be modified.

Now referring to FIG. 22, a diagram is presented illustrating an analyze scenario results template 2200 that is provided to a user who selects to view detailed scenario results according to the display options of FIG. 20. The analyzed scenario results template 2200 has a results summary field 2201, a listing of scenario sub-items 2202, 2203, a drill down button 2204, a print results button 2205, an export results button 2206, and a done button 2207. The results summary field 2201 depicts a results summary pertaining to a selected scenario sub-item 2202, as indicated by highlighting in FIG. 22. The drill down button 2204 enables the user to prescribe how results pertaining to sub-items are presented for review. The print results button 2205 directs the exemplary embodiment to produce a printed result report at the user's client machine. The export results button 2206 directs the exemplary embodiment to download a results file to the client machine. The done button 2207 enables the user to exit the analyze results window 2200 and to return to the currently defined scenarios window.

By selecting the drill down button 2204, the user is taken to a results drill down configuration template 2300 shown in the diagram of FIG. 23. The results drill down configuration template 2300 allows the user to prescribe sub-items and groupings of sub-items for display within the analyze results window 2200 of FIG. 22. The drill down configuration template 2300 has a product selection field 2301, a specific product selection field 2302, a product show result by field 2303, a store selection field 2305, a specific store selection field 2306, and a store show result by field 2307. Via the product selection field 2301, the user can tailor a results display all the way from the product category level down to the individual product level. The options available for selection via the specific product selection field 2302 and the product show result by field 2303 change based upon the user's selection of field 2301. For example, if the user selects to show result data for an entire demand group, field 2302 allows the user specify which demand group and field 2303 provides options 2304 according to the user's selections in fields 2301 and 2302 by which result sub-items are grouped in the analyze results window of FIG. 22. Similarly, via the store selection field 2305, the user can tailor the results display all the way from the chain level down to the individual store level. The options available for selection via the specific store selection field 2306 and the store show result by field 2307 change based upon the user's selection of field 2305. For example, if the user selects to show result data for an entire chain, field 2306 allows the user specify which chain and field 2307 provides options 2308 according to the user's selections in fields 2305 and 2306 by which result sub-items are grouped in the analyze results window of FIG. 22. the configuration template 2300 also provides a display button 2309 that produces an analyze results window like that shown in FIG. 22 having result sub-items and groupings as defined by the user's selections in fields 2301-2303 and 2305-2307.

Referring to FIG. 24, a diagram is presented depicting an analyze scenario results template 2400 that corresponds to display options selected within the drill down configuration template of FIG. 23. The user has selected to display optimization results for an entire product category, broken down into demand group sub-items that are grouped by demand group and store districts. Demand group column header 2401 and district column header 2402 indicate that results sub-items are grouped by demand group and store districts.

FIG. 25 is a diagram depicting a file location designation window 2500 according to the exemplary embodiment. The file designation window 2500 is provided to the user's web browser when the user selects to export results to a file or when upload of data is required to configure an optimization. The file designation window 2500 has a disk designation field 2501, a directory designation field 2502, a filename field 2504, and a file listings field 2503. The user designates a file for download/upload by selecting a disk, directory, and filename for the file to be downloaded/uploaded to/from the client machine via fields 2501, 2502, and 2504. Field 2503 allow the user to view active filenames within a selected directory. FIG. 25 displays a save button 2505 allowing the user to initiate a file export operation to store result data on the client machine. In an upload scenario, the save button 2505 is replaced by an open button (not shown) directing the exemplary embodiment to initiate the upload of data.

FIG. 26 is a diagram portraying a graph utility window 2600 for graphically presenting scenario result data. The graph utility window 2600 is provided to the user's web client via selection of the graph button 2004 within the results display options template 2000. The graph utility window 2600 has a results presentation area 2604, within which results of a selected optimization are displayed. The graph utility window also has drill button 2601, a min field 2602, a max field 2603, and a results selection chooser 2605. The drill button 2601 allows the user to configure sub-item options for presentation in the results presentation area 2604 like the options for list presentation described with reference to FIG. 23. The min and max fields 2602, 2603 allow the user to define boundaries for and ordinate axis displayed within the results presentation area. And the results selection chooser 2605 enables the user to specify graphical display of results within the presentation area 2604 according to either price or volume.

Now referring to FIG. 27, a diagram is presented showing a personal settings template 2700 for configuring scenario properties for display within a currently defined scenarios window according to an exemplary embodiment of the present invention. The personal settings template 2700 is provided to the user's thin client application when the user select the personal settings option 904 within the admin menu described with reference to FIG. 9. The personal settings window 2700 enables the user to personalize his/her presentation of the currently defined scenarios window within the exemplary embodiment. The personal settings window 2700 has a scenario properties field 2701, within which is displayed a number of scenario properties (i.e., descriptors) 2702 such as scenario ID, scenario name, description, company (i.e., client) ID, optimization start and end dates, scenario type, creator identification, and optimized net profit. The user may select multiple scenario properties 2702 within the personal settings window 2700 to provide only those descriptors 2702 of each scenario that the user requires. A done button 2703 enables the user to implement the personalized settings.

FIG. 28 is a diagram illustrating the personal settings template 2800 of FIG. 27 having a group of scenario properties 2801 selected for display within a currently defined scenarios window according to an exemplary embodiment of the present invention. The selected group of scenario properties 2801 is designated by highlighting. Selection is enabled via a standard pointing device such as a mouse.

FIG. 29 is a diagram featuring a currently defined scenarios window 2900 corresponding to the display properties 2801 selected in the personal settings template 2800 of FIG. 28. A plurality of column headers 2901 within the currently defined scenarios template 2900 are provide that comport with the scenario properties 2801 selected for display by the user. Each listed scenario within the window 2900 is identified by its data corresponding to the column headers 2901.

Now referring to FIG. 30, a diagram is presented depicting a create and manage store groups template 3000 according to the exemplary price optimization embodiment. The create and manage store groups template 3000 is provided to the user's web browser when the user selects the store groups option 804 within the groups/classes menu discussed with reference to FIG. 8 or when the user selects the create or edit store groups button 1208 within the new scenario location template 1200 discussed with reference to FIG. 12. The create and manage store groups template 3000 enables the user to create and/or manipulate groups of stores for the purposes of optimization. Two types of “groupings” are provided for by the template 3000: a group and a cluster. Both groupings are an aggregate of stores whose price history and sale data will be employed (if selected) within a price optimization. However, optimizations that prescribe store groups are allowed to determine different prices for the same product according to each different store within a store group. If the user prescribes a cluster of stores for an optimization, and if the user selects the enforce/apply cluster prices checkbox 1405 within the at-large rules template 1400 described with reference to FIG. 14, then optimized prices for each of the stores within the cluster are constrained to be the same for each product carried by the stores within the cluster.

Uploaded or interactively provided store organization data for each client are stored within a data base according to the present invention. The store groups template 3000 displays hierarchical store organization data 3002 within a store organization field 3001 and provides a list of stores 3003 at the lowest level of hierarchy. Example hierarchical attributes include chain, region, district, city, etc. The store groups template 3000 also has an existing groups field 3004 and a description field 3005. The existing groups field 3004 lists currently defined store groups and clusters and the description field 3005 provides descriptive information for a selected store group/cluster.

FIG. 31 is a diagram portraying the create and manage store groups template 3100 of FIG. 30 indicating those stores within a store group entitled “Midtown.” The store organization field 3101 highlights all of the stores 3103 of the midtown group 3107 within their existing hierarchy fields 3102, which are highlighted as well. Checkboxes in the organization field 3101 enable the user to select/deselect stores 3103 or hierarchy fields 3102 to add a new group/cluster. Descriptive data 3106 is shown within the description field 3105 for a selected store group 3107 within the store group field 3104. A make a cluster button 3109 allows the user to create a cluster from the selected store group 3107. A new button 3110 allow the user to create a new store group whose name is entered within a group name field 3108. A remove button 3111 is provided to enable the user to delete a selected store group/cluster 3107. And a group builder button 3112 enables the user to utilize a Boolean logic tool for configuring more complex store groupings. The user exits the create and manage store groups window 3100 by selecting an exit button 3113.

FIG. 32 is a diagram showing a tree filtering window 3200 for building a store group according to the exemplary embodiment. The tree filtering window 3200 is provided in response to the user's selection of the group builder button 3112 within the create and manage store groups template 3100 of FIG. 31. The tree filtering, or group builder, window 3200 provides the user with a plurality of selection buttons/Boolean controls 3201 along with a plurality of choosers 3202 to enable the configuration of store groups having a complex relationship. The group builder tool 3200 is useful for client data sets that comprise thousands of stores where it is difficult to prescribe grouping relationships simply by selection. A done button 3203 enables the user to exit the tree filtering template 3200 and to return to the create and manage store groups template 3100.

Now referring to FIG. 33, a diagram is presented illustrating a product class management window 3300 for brand class according to the exemplary embodiment highlighting products within a premium product class. The product class management window 3300 is accessed via a user's selection of the brand class management option 806 within the groups/classes menu discussed with reference to FIG. 8. The product class management window 3300 exemplifies how the user establishes and categories groupings of products within user-defined classes of products for the purposes of imposing product-level rules and constraints and for the purposes of viewing detailed optimization results. Product classes are analogous to store groups. The product class management window 3300 provides a members tab 3301 depicting highlighted members of a particular product class within a member products display field 3307. The template 3300 also provides a constraints tab 3302 allowing the user to prescribe additional member constraints for product class groups. The template 3300 provides a category chooser 3303 for the user to select a product category for display within display field 3307. Existing brand product classes are displayed within field 3306. A new class button 3304 enables the user to specify a new brand product class and a delete class button allows the deletion of a highlighted brand product class within field 3306.

Now referring to FIG. 34, a diagram is presented featuring a rules summary window 3400 for an optimization scenario that is highlighted within a currently defined scenarios window. Selection of a rules table 3401 enables the user to prescribe additional rules and constraints for configured scenarios that employ product classes described with reference to FIG. 33.

Selecting the rules tab 3401 also enables the rules/constraints menu 3501 shown in the diagram of FIG. 35. The rules/constraints menu 3501 provides a plurality of options 3502 that enable the user to prescribe optimization rules and constraints according to product classes as well as across store rules and group-to-group rules. Such rules, being at levels much lower that those specified according to the at-large rules template 1400 of FIG. 14, are more readily prescribed by selecting a configured scenario and then enabling the rules/constraints menu 3501.

When the user first adds a rule or constraint to a configured scenario, a first rule warning window 3600 according to the exemplary embodiment is displayed as shown in the diagram of FIG. 36. The warning window 3600 instructs the user that once the rule/constraint is added, then the user is henceforth prohibited from further modifying store and/or product groups because rules and constraints specified by the selection of options 3502 within the rules/constraints menu 3501 are based upon the existing organization of stores and products. Any subsequent changes to the existing organization will invalidate previously specified rules for a selected scenario, thus changes to the existing organization is henceforth prohibited following configuration of the first rule/constraint.

Now referring to FIG. 37, a diagram is presented showing an add a rule for product group template 3700 according to the exemplary embodiment. The add a rule for product group template 3700 exemplifies features provided by the present invention that allow a user to constrain a price optimization at levels below those covered by the at-large rules template 1400 described with reference to FIG. 14. The add a rule template 3700 has a rule application area 3707, a limit method area 3702, a rule type area 3703, an enforce rule area 3704, a rule description area 3705, an applicable store group chooser 3706, and an applicable product group chooser 3707. The rule application area 3701 allows the user to apply the added rule either to individual members of an entire set or to an aggregation of the set, where the “set” is defined by store and product group selections in choosers 3707 and 3707. The limit method area 3702 provides the user with options to prescribed the added rule in terms of a percentage, relative limits, or absolute limits. The rule type area 3703 enables the user to select from a plurality of rule types that include volume, price, gross margin, profit, net margin, etc. The enforce rule area 3704 allow the user to prescribe limits for the rule which are interpreted according to user selections within the limit method area 3702. The rule description area 3705 provides a description of a configured rule in narrative form.

Once additional rules/constraints have been configured for a selected scenario within a currently defined scenarios window, the rules summary window 3800 will display a narrative description of all applied rules 3801, as depicted by FIG. 38. Within the rules summary window 3800, the user can activate/deactivate selected rules prior to optimization of the selected scenario.

Now turning to FIG. 39, a diagram 3900 is presented illustrating selection options within a currently defined scenarios template 3901 that allow a user to re-optimize a product subset and to perform an optimization feasibility analysis. The currently defined scenarios template 3901 depicts a number of scenarios 3902, one which has been highlighted. The template 3901 also shows, within an edit window 3903, a re-optimize a subset option 3904 along with a feasibility option 3905. The re-optimize a subset option 3904 is selected by the user following the incorporation of new and/or changed product data into the customer data base. The purpose of subset re-optimization is to allow an optimization of the highlighted scenario 3902 to incorporate the effects of the new and/or changed product data, yet at the same time providing a constraint on the number of attribute changes (i.e., product prices, locations, etc.) that will result from the re-optimization. In a price optimization embodiment, re-optimization constrains the number of price tag changes that must be made. The feasibility option 3905 is selected by the operator to invoke a feasibility analysis of the highlighted scenario 3902 prior to performing an optimization.

If the user selects the re-optimize option 3904 of FIG. 39, he/she is then presented with a re-optimize a subset template 4002 as is shown in the diagram 4000 of FIG. 40. The diagram 4000 depicts the re-optimize a subset template 4002 within a currently defined scenarios window 4001. The re-optimize a subset template 4002 is provided to allow the user to prescribe attribute change constraints for a re-optimization to be performed.

Turning to FIG. 41, a detailed diagram of a re-optimize a subset template 4100 according to the exemplary embodiment is presented. The re-optimize template 4100 identifies the applicable scenario for re-optimization within an applicable scenario field 4101 and the product group of the original optimization within an original product group field 4102. A maximum changes field 4103 displays a default maximum number of attribute changes that will be allowed in an ensuing re-optimization. The user may change the default value of this field 4103, thus increasing or decreasing the number of attribute changes that will be allowed in the re-optimization.

Now referring to FIG. 42, a diagram 4200 is presented showing a rules summary template 4201 that features controls 4203-4205 for prioritizing optimization rules 4202 according to the exemplary embodiment. A summary of each rule 4202 is displayed within the template 4201. The summary includes an indication of each rule's priority relative to the other rules 4202. The relative priority of a highlighted rule 4202 is increased by selecting an up control 4204 and decreased by selecting a down control 4205. In addition each rule 4202 activated/de-activated by selecting the corresponding activate/de-activate control 4203. De-activating a configured rule 4202 removes the constraint dictated by the rule 4202 altogether from an optimization. Rule relaxation, as described above, is employed to progressively relax the constraints of a lower-priority conflicting rule 4202 in the case of a conflict with a higher-priority active rule 4202 to render an optimization feasible that has bee previously determined to be infeasible.

FIG. 43 is a diagram 4300 illustrating a feasibility analysis options template 4309 according to the exemplary embodiment. The feasibility analysis options template 4309 is provided to the user when the user selects a feasibility analysis option 4303 within an edit options window 4302 according to the exemplary embodiment. The edit options window 4302 is provided within a currently defined scenarios template 4301. In the exemplary embodiment options are provided for the user to select to perform a feasibility analysis at the scenario level (scenario feasibility option 4304) or the user can perform an analysis to determine conflicting rules for any of four different product classes. A brand rule feasibility option 4305 will invoke a feasibility analysis of configured brand class rules. A size rule feasibility option 4306 invokes an analysis of configured size class rules. An other 1 rule feasibility option 4307 invokes an analysis of configured other 1 class rules. And an other 2 rule feasibility option 4307 invokes an analysis of configured other 2 class rules.

Once a feasibility analysis option has been prescribed by the operator, a feasibility analysis configuration template 4401 is presented, as shown in the diagram of FIG. 44. The configuration template 4401 provides a detailed output selection button 4402, a summary output selection button 4403, and a show all items selector 4404. The detailed and summary output selection buttons 4402, 4403 enable the user to tailor the level of analysis result data that is presented following the feasibility analysis. The show all items selector 4404 enables the operator to prescribe the level of details that are presented within the analysis results.

Although the present invention and its objects, features, and advantages have been described in detail, other embodiments are encompassed by the invention as well. For example, the present invention has been particularly characterized as a web-based system whereby clients access a centralized network operations center in order to perform optimizations. However, the scope of the present invention is not limited to application within a client-server architecture that employs the Internet as a communication medium. Direct client connection is also provided for by the system according to the present invention.

In addition, the present invention has been particularly characterized in terms of servers, controllers, and management logic for optimization of various merchandising parameters. These elements of the present invention can also be embodied as application program modules that are executed on a Windows NT®- or Unix®-based operating system.

Furthermore, the present invention has been presented in terms of several merchandising levers, and specifically in terms of a price lever, whereby prices are optimized to maximize a user-selected figure of merit. Price is a well understood lever, but scope of the present invention is not constrained to price. Any well understood merchandising lever, the manipulation of whose attributes can be quantified and estimated with respect to consumer demand and whose associated costs can be determined via an activity based cost model are contemplated by the present invention. Such levers include space, assortment, logistics, and promotion.

Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present invention, and that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. 

1. An interface enabling a user to determine optimum prices of products for sale, comprising: a scenario/results processor, configured to enable a user to prescribe an optimization scenario, and configured to present the optimum prices to said user, wherein the optimum prices are determined by execution of said optimization scenario, and wherein said optimum prices are determined based upon estimated product demand and calculated activity based costs, said scenario/results processor comprising: an input/output processor, configured to acquire data corresponding to said optimization scenario from said user, and configured to distribute optimization results lo said user wherein said input/output processor comprises: a template controller, configured to provide first price optimization templates and second price optimization templates, wherein and first price optimization templates are presented to said user to allow for prescription of said optimization scenario, and for distribution of said optimization results and wherein said first price optimization templates comprise: a plurality of new scenario templates, configured to enable said user to prescribe scenario parameters corresponding to said optimization scenario, wherein said plurality of new scenario templates comprises: a category template for specifying a product category for price optimization, said product category comprising: a plurality of demand group, each of said plurality of demand groups configured to categorize a set of highly correlated products; and a products template, for specifying the products for sale, wherein the products for sale span more than one of said plurality of demand groups; and a command interpreter; configured to extract commands from said first price optimization templates executed by said user, and configured to populate said second price optimization templates according to result data provided for presentation to said user; and a scenario controller, coupled to said input/output processor, configured to control acquisition of said data and distribution of said optimization results in accordance with a price optimization procedure, wherein said price optimization procedure is configured to relax constraints of lower priority conflicting rules to render said optimization scenario feasible.
 2. The apparatus as recited in claim 1, wherein said data is acquired from said user over the Internet via a packet-switched protocol.
 3. The apparatus as recited in claim 2 wherein said data is acquired from a source electronic file and said optimization results are distributed to a destination electronic file, said electronic files being designated by said user.
 4. (canceled)
 5. The apparatus as recited in claim 1, wherein said first and second price optimization templates are provided according to hypertext markup language (HTML).
 6. The apparatus as recited in claim 1 wherein said first and second price optimization templates are provided according to extensible markup language (XML).
 7. The apparatus as recited in claim 1 wherein said first and second price optimization templates are provided as Java applets.
 8. (canceled)
 9. (canceled)
 10. (canceled)
 11. The apparatus as recited in claim 1, wherein said plurality of new scenario templates further comprises: a locations template, for specifying a plurality of store groups for which the optimum prices are to be determined, wherein, when determining the optimum prices, the apparatus employs portions of said data that correspond to said plurality of store groups.
 12. The apparatus as recited in claim 1, wherein said plurality of new scenario templates further comprises: a time horizon template, for specifying a time period for which the optimum prices are to be determined.
 13. The apparatus as recited in claim 1, wherein said plurality of new scenario templates further comprises: an at-large rules template, for specifying rules to govern determination of the optimum prices, said rules comprising: maximum allowable price swing for each of the products for sale; and maximum allowable swing for average price of each demand group within said plurality of demand groups.
 14. The apparatus as recited in claim 1, wherein said plurality of new scenario templates further comprises: a strategy template, for specifying a merchandising performance figure of merit, and for specifying limits for changes in sales volume.
 15. The apparatus as recited in claim 14, wherein options for specification of said merchandising performance figure of merit comprise net profit, said sales volume, and revenue.
 16. The apparatus as recited in claim 1, wherein said first price optimization templates further comprise: a configured rules template, configured to enable said user to prescribe a priority corresponding to each of a plurality of rules, said plurality of rules providing constraints for said optimization scenario.
 17. The apparatus as recited in claim 1, wherein said first price optimization templates further comprise: a subset re-optimization template, configured to enable said user to prescribe a maximum number of price changes to be determined by execution of said optimization scenario.
 18. The apparatus as recited in claim 1, wherein said second price optimization templates comprise: a price optimization results template, for providing said user with said result data corresponding to said optimization scenario.
 19. The apparatus as recited in claim 18, wherein said result data comprises optimized values and percent change values for merchandising factors, wherein said merchandising factors comprise one or more of the following: sales volume, revenue, product cost, gross margin, and net profit.
 20. A method for providing an interface to an apparatus for optimizing the prices of products for sale, comprising: utilizing a computer-based scenario/results processor within an optimization server to present a sequence of data entry templates to a user, whereby the user specifies an optimization scenario, the optimization server optimizing the prices according to modeled market demand for the products and calculated demand chain costs for the products; said utilizing comprising: first providing a category template, for specifying a product category for price optimization, wherein the product category comprises a plurality of demand groups; second providing a products template, for specifying the products for sale for which the optimum prices are to be determined, wherein the products for sale span more than one of the plurality of demand groups; third providing a time horizon template, for prescribing a time period for which the optimum prices are to be determined; selectively limiting the number of prices that are optimized; and generating a plurality of optimization results templates and providing these templates to the user, wherein the optimum prices are presented.
 21. The method as recited in claim 20, wherein said utilizing comprises: acquiring data corresponding to the optimization scenario from the user; and formatting the data into a format suitable for performing a price optimization according to the optimization scenario.
 22. The method as recited in claim 21, wherein said acquiring comprises: obtaining the data from the user over a data network that employs a packet-switched protocol.
 23. The method as recited in claim 21, wherein the data is acquired from a source electronic file that is designated by the user.
 24. The method as recited in claim 20, wherein the data entry templates and the optimization results templates are generated in hypertext markup language (HTML).
 25. The method as recited in claim 20, wherein the data entry templates and the optimization results templates are generated in extensible markup language (XML).
 26. The method as recited in claim 20, wherein the data entry templates and the optimization results templates are generated as Java applets.
 27. (canceled)
 28. The method as recited in claim 20, wherein said utilizing further comprises: fourth providing a locations template, for prescribing a plurality of store groups for which the optimum prices are to be determined, wherein said prescribing directs said optimizing to utilize data corresponding to the plurality of said store groups when determining the optimum prices; and fifth providing an at-large rules template, for specifying rules to govern determination of the optimum prices, wherein the rules specify maximum allowable price swing for each of the products for sale, and maximum allowable swing for the average price of each demand group within the plurality of demand groups.
 29. The method as recited in claim 28, wherein said utilizing further comprises: sixth providing a configured rules template, for prioritizing the rules, wherein, if particular rules conflict, the optimization server optimizes the prices by progressively relaxing constraints prescribed by lower-priority rules.
 30. The method as recited in claim 20, wherein said utilizing comprises: providing a strategy template, for specifying a merchandising performance figure of merit, and for prescribing limits for changes in sales volume.
 31. The method as recited in claim 30, wherein options for specifying the merchandising performance figure of merit comprise net profit, sales volume, and revenue.
 32. The method as recited in claim 21, wherein said generating comprises: providing a price optimization results template, for supplying the user with scenario results corresponding to the optimization scenario, wherein the scenario results include optimized values and percent change values for merchandising factors, the merchandising factors including one or more of the following: volume, revenue, product cost, gross margin, and net profit. 